package com.whoru.logica;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.whoru.beans.*;

public class JsonMe {
	
	JSONObject json_data;
    JSONObject user;

    JSONObject notification;
  

    JSONObject location,myfecha,mensaje;

	
	public JsonMe(){
	}
	
	public ArrayList<Notification> trataNotification(String data){
		
		ArrayList<Notification> n = new ArrayList<Notification>();
		Notification notificaciones;
	    WebServices ws = new WebServices();
		
	    try{
	        JSONArray jArray1 = new JSONArray(data);
	        
	    
	        for(int i=0;i<jArray1.length();i++){
	                json_data = jArray1.getJSONObject(i);	
	                notification=json_data;
	                notificaciones = new Notification();                
	              
	                
	                notificaciones.setRid(notification.getString("rid"));
	                notificaciones.setRequester_id(notification.getString("requester_id"));
	                notificaciones.setRequestee_id(notification.getString("requestee_id"));
	                notificaciones.setApproved(notification.getString("approved"));
	                notificaciones.setSms(ws.getSms(notification.getString("rid")));
	                
	                if (notificaciones.getApproved().equals("0")){
		                notificaciones.setNota(ws.getNombreUsuario(notification.getString("requester_id"))+" quiere ser tu amigo");
	                }
	                else notificaciones.setNota("Amistad aceptada con "+ws.getNombreUsuario(notification.getString("requester_id")));

	                n.add(notificaciones);
	           
	
	        }
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return n;
		
	}
	
	public String trataSms(String data){
		
		String sms = new String();
		
		 try{
			 JSONObject jObject = new JSONObject(data);
		        
		        sms = jObject.getString("elaboration");
		        
		        
		 }catch(JSONException e){
		    	System.out.println("Errorea");e.printStackTrace();
		    }
			return sms;
		
	}
	
	public String trataNombreUsuario(String data){
		
		String nombre = new String();
		
		 try{
		        JSONObject jObject = new JSONObject(data);
		        
		        nombre = jObject.getString("name");
		        
		        
		 }catch(JSONException e){
		    	System.out.println("Errorea");e.printStackTrace();
		    }
			return nombre;
		
	}
	
	
	
	public User trataUser(String data){
		
		User u = new User();
		
	    try{
	        JSONArray jArray = new JSONArray(data);
	        for(int i=0;i<jArray.length();i++){
	        	
	                json_data = jArray.getJSONObject(i);
	                user=json_data.getJSONObject("user");
	                u.setName(user.getString("name"));
	                u.setSitu(user.getString("mail"));
	                u.setuCon(user.getString("profile_ultima_conexion"));
	                u.setUid(user.getString("uid"));
	                u.setuCon(user.getString("profile_ultima_conexion"));
	                u.setPicture(user.getString("picture"));
	                location=user.getJSONObject("location");
	                u.setLatitude((int) (location.getDouble("latitude") * 1E6));
	                u.setLongitude((int) (location.getDouble("longitude") * 1E6));
	                u.setCountry(location.getString("country_name"));
	                u.setCity(location.getString("name"));
	                u.setPrivacidad(user.getString("profile_privacidad"));
	                myfecha=user.getJSONObject("profile_nacimiento");
	                u.setNacimiento(myfecha.getString("day")+"/"+ myfecha.getString("month")+"/"+myfecha.getString("year"));
	                u.setSexo(user.getString("profile_sex"));
	                u.setEdad(myfecha.getString("year"));
	                
	                //Cargamos la informacion sobre los gustos
	                u.setCine(user.getString("profile_cine"));
	                u.setDeportes(user.getString("profile_deportes"));
	                u.setMusica(user.getString("profile_musica"));
	                
	                //Cargamos tambien el estado del usuario que viene en otra WS
	                
	                WebServices ws = new WebServices();
	                String Msn=ws.getMensaje(u.getUid());
	                u.setStatus(Msn);
	        }
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return u;
	}
	
	public ArrayList<User> trataAmigos(String data){
		
		ArrayList<User> a = new ArrayList<User>();
		User amigo;
		
		try{
	        JSONArray jArray = new JSONArray(data);
	        for(int i=0;i<jArray.length();i++){
	                json_data = jArray.getJSONObject(i);
	                user=json_data;
	                amigo = new User();
	                amigo.setName(user.getString("name"));
	                amigo.setSitu(user.getString("mail"));
	                amigo.setuCon(user.getString("profile_ultima_conexion"));  
	                amigo.setPrivacidad(user.getString("profile_privacidad")); 
	                myfecha=user.getJSONObject("profile_nacimiento");
	                amigo.setNacimiento(myfecha.getString("day")+"/"+ myfecha.getString("month")+"/"+myfecha.getString("year"));
	                amigo.setSexo(user.getString("profile_sex"));
	                amigo.setEdad(myfecha.getString("year"));
	                amigo.setPicture(user.getString("picture"));
	                WebServices ws = new WebServices();
	                String Msn=ws.getMensaje(user.getString("uid"));
	                amigo.setMensaje(Msn);
	                amigo.setStatus(Msn);
	                location=user.getJSONObject("location");
	                amigo.setCountry(location.getString("country_name"));
	                amigo.setCity(location.getString("name"));
	                amigo.setLatitude((int) (location.getDouble("latitude") * 1E6));
	                amigo.setLongitude((int) (location.getDouble("longitude") * 1E6));
	                
	                //Cargamos la informacion sobre los gustos
	                amigo.setCine(user.getString("profile_cine"));
	                amigo.setDeportes(user.getString("profile_deportes"));
	                amigo.setMusica(user.getString("profile_musica"));
	                
	                a.add(amigo);
	        }
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return a;
	}
	
	public ArrayList<User> trataDescos(String data){
		
		ArrayList<User> d = new ArrayList<User>();
		User desco;
		
		try{
	        JSONArray jArray = new JSONArray(data);
	        for(int i=0;i<jArray.length();i++){
	                json_data = jArray.getJSONObject(i);
	                user=json_data;
	                if(!user.getString("name").equals("admin")){
	                desco = new User();
	                desco.setName(user.getString("name"));
	                desco.setSitu(user.getString("mail"));
	                desco.setuCon(user.getString("profile_ultima_conexion"));
	                desco.setPriv(user.getString("profile_privacidad"));
	                desco.setPrivacidad(user.getString("profile_privacidad"));
	                //desco.setCity(user.getString("profile_location"));
	                myfecha=user.getJSONObject("profile_nacimiento");
	                desco.setNacimiento(myfecha.getString("day")+"/"+ myfecha.getString("month")+"/"+myfecha.getString("year"));
	                desco.setSexo(user.getString("profile_sex"));
	                desco.setEdad(myfecha.getString("year"));
	                desco.setPicture(user.getString("picture"));
	                WebServices ws = new WebServices();
	                String Msn=ws.getMensaje(user.getString("uid"));
	                desco.setMensaje(Msn);
	                desco.setStatus(Msn);
	                location=user.getJSONObject("location");
	                desco.setCity(location.getString("name"));
	                desco.setCountry(location.getString("country_name"));
	                desco.setLatitude((int) (location.getDouble("latitude") * 1E6));
	                desco.setLongitude((int) (location.getDouble("longitude") * 1E6));
	                
	                //Cargamos la informacion sobre los gustos
	                desco.setCine(user.getString("profile_cine"));
	                desco.setDeportes(user.getString("profile_deportes"));
	                desco.setMusica(user.getString("profile_musica"));
	                
	                d.add(desco);}
	        }
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return d;
	}
	
	public ArrayList<User> trataEstablecimientos(String data){
		
		ArrayList<User> es = new ArrayList<User>();
		User establecimiento;
		
		try{
	        JSONArray jArray = new JSONArray(data);
	        for(int i=0;i<jArray.length();i++){
	                json_data = jArray.getJSONObject(i);
	                user=json_data;
	                establecimiento = new User();
	                establecimiento.setName(user.getString("name"));
	                establecimiento.setSitu(user.getString("mail"));
	                location=user.getJSONObject("location");
	                establecimiento.setEstablecimiento(user.getString("profile_tipo_establecimiento"));
	                
	                /*establecimiento.setPrivacidad(user.getString("profile_privacidad"));
	                establecimiento.setCountry(location.getString("country_name"));
	                establecimiento.setCity(user.getString("profile_location"));
	                myfecha=user.getJSONObject("profile_nacimiento");
	                establecimiento.setNacimiento(myfecha.getString("day")+"/"+ myfecha.getString("month")+"/"+myfecha.getString("year"));
	                establecimiento.setSexo(user.getString("profile_sex"));
	                WebServices ws = new WebServices();*/
	                
	                establecimiento.setPicture(user.getString("picture"));
	                
	                WebServices ws = new WebServices();
	                String Msn=ws.getMensaje(user.getString("uid"));
	                establecimiento.setMensaje(Msn);
	                establecimiento.setStatus(Msn);
	                
	                establecimiento.setLatitude((int) (location.getDouble("latitude") * 1E6));
	                establecimiento.setLongitude((int) (location.getDouble("longitude") * 1E6));
	                es.add(establecimiento);
	                
	        }
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return es;
	}
	
	public String tratarMensaje (String data){
		
	    	try{
	    			mensaje = new JSONObject(data);
	                return(mensaje.getString("STATUS"));
	     
	    }catch(JSONException e){
	    	System.out.println("Errorea");e.printStackTrace();
	    }
		return "";
	}

}
